// 指针常量 与 常量指针
#include <stdio.h>

int main(int argc, char *argv[])
{
    int a = 100;
    int b = 200;

    // 常量指针： 不可以通过指针修改被指向的内容
    // 但常量指针可以指向其它地址空间
    const int *p = &a;
    int const *p1 = &a;
    p = &b;
    p1 = &b;

    printf("p:%d\n", *p);
    printf("p1:%d\n", *p1);

    puts("------------------------");

    // 指针常量： 指针的指向不能修改
    // 但可以通过指针常量修改所指向空间中的值
    int * const q = &a;
    *q = 155;

    printf("*q:%d\n", *q);

    puts("------------------------");

    // 完全常量化的指针， 指针指向与所指向的内容都不能被修改
    const int * const r = &a;
    int const * const r1 = &a;

    printf("*r:%d\n", *r);
    printf("*r1:%d\n", *r1);

    return 0;
}
